#ifndef INCLUDED_ENGINE_METATYPES_H
#define INCLUDED_ENGINE_METATYPES_H

//====================================================================================================
// Filename:	MetaTypes.h
// Created by:	Josh Blidook
//====================================================================================================

//====================================================================================================
// Constants
//====================================================================================================

//====================================================================================================
// Includes
//====================================================================================================

#include "Hash.h"

//====================================================================================================
// Namespace
//====================================================================================================

namespace Meta
{
	// Tie class with its name, these 3 need to be in sync, in order, add each piece each time
enum Type
{
#define DEFTYPE(x) x##Type,
#include "MetaTypeDefines.tup"
#undef DEFTYPE
	TypeMax // Useful when iterating though types, gives you number of, just for enums
			// , any other one can get this number too
};

	//----------------------------------------------------------------------------------------------------

static const char* Name[] = 
{
#define DEFTYPE(x) #x,
#include "MetaTypeDefines.tup"
#undef DEFTYPE
};

	//----------------------------------------------------------------------------------------------------

static const u64 Hash[] =
{
#define DEFTYPE(x) GetHash(#x),
#include "MetaTypeDefines.tup"
#undef DEFTYPE
};

} // namespace Meta


//----------------------------------------------------------------------------------------------------

//====================================================================================================
// Constants
//====================================================================================================

//----------------------------------------------------------------------------------------------------


#endif // #ifndef INCLUDED_ENGINE_METATYPES_H